home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / sbin / ufw < prev    next >
Text File  |  2008-10-08  |  3KB  |  120 lines

  1. #! /usr/bin/python
  2. #
  3. # ufw: front-end for Linux firewalling (cli)
  4. #
  5. # Copyright (C) 2008 Canonical Ltd.
  6. #
  7. #    This program is free software: you can redistribute it and/or modify
  8. #    it under the terms of the GNU General Public License version 3,
  9. #    as published by the Free Software Foundation.
  10. #
  11. #    This program is distributed in the hope that it will be useful,
  12. #    but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. #    GNU General Public License for more details.
  15. #
  16. #    You should have received a copy of the GNU General Public License
  17. #    along with this program.  If not, see <http://www.gnu.org/licenses/>.
  18. #
  19.  
  20. import os
  21. import re
  22. import sys
  23. import warnings
  24.  
  25. import ufw.frontend
  26. from ufw.common import UFWError
  27. from ufw.util import error, warn
  28.  
  29. import gettext
  30. gettext.install(ufw.common.programName)
  31.  
  32. version = "0.23.2"
  33.  
  34. def clean_warning(message, category, filename, lineno, file=None):
  35.     warn(message)
  36.  
  37. # Internationalization
  38. gettext.bindtextdomain(ufw.common.programName, \
  39.                        os.path.join(ufw.common.state_dir, 'messages'))
  40. gettext.textdomain(ufw.common.programName)
  41. _ = gettext.gettext
  42.  
  43. if sys.version_info[0] < 2 or \
  44.    (sys.version_info[0] == 2 and sys.version_info[1] < 5):
  45.     print >> sys.stderr, ufw.common.programName + \
  46.              _(": Need at least python 2.5)\n")
  47.     sys.exit(1)
  48.  
  49.  
  50. if __name__ == "__main__":
  51.     warnings.showwarning = clean_warning
  52.     action = ""
  53.     rule = ""
  54.     dryrun = False
  55.     app_action = False
  56.     profile = ""
  57.  
  58.     if len(sys.argv) > 1 and sys.argv[1].lower() == "app":
  59.         try:
  60.         (action, profile, dryrun) = \
  61.                 ufw.frontend.parse_application_command(sys.argv)
  62.             app_action = True
  63.         except ValueError:
  64.             print ufw.frontend.get_command_help()
  65.             sys.exit(1)
  66.         except UFWError, e:
  67.             error(e.value)
  68.         except Exception:
  69.             raise
  70.     else:
  71.         try:
  72.             (action, rule, ip_version, dryrun) = \
  73.                 ufw.frontend.parse_command(sys.argv)
  74.         except ValueError:
  75.             print ufw.frontend.get_command_help()
  76.             sys.exit(1)
  77.         except UFWError, e:
  78.             error(e.value)
  79.         except Exception:
  80.             raise
  81.  
  82.     if action == "help" or action == "--help":
  83.         print ufw.frontend.get_command_help()
  84.         sys.exit(0)
  85.     elif action == "version" or action == "--version":
  86.         print ufw.common.programName + " " + version
  87.         print "Copyright (C) 2008 Canonical Ltd."
  88.         sys.exit(0)
  89.  
  90.     try:
  91.         ui = ufw.frontend.UFWFrontend(dryrun)
  92.     except UFWError, e:
  93.         error(e.value)
  94.     except Exception:
  95.         raise
  96.  
  97.     res = ""
  98.     try:
  99.         if app_action:
  100.             res = ui.do_application_action(action, profile)
  101.         else:
  102.             bailout = False
  103.             if action == "enable" and not ui.continue_under_ssh():
  104.                 res = _("Aborted")
  105.                 bailout = True
  106.  
  107.             if not bailout:
  108.                 res = ui.do_action(action, rule, ip_version)
  109.  
  110.         if res != "":
  111.             print res
  112.  
  113.     except UFWError, e:
  114.         error(e.value)
  115.     except Exception:
  116.         raise
  117.  
  118.     sys.exit(0)
  119.  
  120.